﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using DevExpress.XtraEditors;
using VSSAHT.DataAccess;
using VSSAHT.Transfer;

namespace VSS_AHT
{
    public partial class FormUpdateRole : DevExpress.XtraEditors.XtraForm
    {
        #region Ctors
        public FormUpdateRole()
        {
            InitializeComponent();
            Initialize();
        }

        private void Initialize()
        {
            this.MaximizeBox = false;
                        
            this.btnSave.Click += new EventHandler(delegate { ClickButtonSave(); });
            this.btnCancel.Click += new EventHandler(delegate { this.Close(); });
            ValidatingControls();
        }

        #endregion

        #region Property Member
        private bool _isEdit = false;
        private bool _isBinding = false;
        private RoleDTO _role = new RoleDTO();        
        RoleDataAccess _dataAccessRole = new RoleDataAccess();
        
        public RoleDTO Role
        {
            get { return _role; }
            set
            {
                if (_role != value)
                {
                    _isEdit = true;
                    _role = value;
                    
                }
            }
        }

        //private IList<RoleDTO> _collection;
        //public IList<RoleDTO> Collection
        //{
        //    set { _collection = value; }
        //}
        #endregion

        #region Methods
        private void ValidatingControls()
        {
            string errorMessage = String.Empty;
            this.txtRoleCode.Validating += new CancelEventHandler(delegate
            {
                errorMessage = String.IsNullOrEmpty(this.txtRoleCode.Text) ?
                    "Mã vai trò cần được nhập" : String.Empty;
                errorProvider.SetError(this.txtRoleCode, errorMessage);
            });

            this.txtRoleName.Validating += new CancelEventHandler(delegate
            {
                errorMessage = String.IsNullOrEmpty(this.txtRoleName.Text) ?
                    "Tên vai trò cần được nhập" : String.Empty;
                errorProvider.SetError(this.txtRoleName, errorMessage);
            });

        }
        private void ClickButtonSave()
        {
            bool invalidInput = false;

            foreach (Control ctrl in this.Controls)
            {
                if (errorProvider.GetError(ctrl) != String.Empty)
                {
                    invalidInput = true;
                    break;
                }
            }

            if (invalidInput)
            {
                Common.ShowAlert("Thông tin bạn nhập chưa hợp lệ, vui lòng kiểm tra lại");
            }
            else
            {
                this.errorProvider.Clear();

                bool result = false;
                
                    _role.RoleCode = txtRoleCode.Text;
                    _role.RoleName = txtRoleName.Text;
                    
                   
                        result = _dataAccessRole.Edit(_role);

                        if (result)
                        {
                            this.DialogResult = DialogResult.OK;
                            this.Close();
                        }
                        else
                        {
                            Common.ShowAlert("Chỉnh sửa thông tin vai trò không thành công!");
                        }

                    
                
            }
        } 
       
        #endregion

        #region Events
        protected override void OnLoad(EventArgs e)
        {
            txtRoleCode.Text = Role.RoleCode;
            txtRoleName.Text = Role.RoleName;
            this.txtRoleCode.Focus();
            base.OnLoad(e);
        }
        #endregion
    }
}